package com.hksj.am.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hksj.am.query.AlarmDetailQuery;
import com.hksj.am.query.AmmoniaCockpitQuery;
import com.hksj.am.vo.AlarmDeviceInfoVO;
import com.hksj.am.vo.AlarmNumTrendVO;
import com.hksj.am.vo.AlarmRoomVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author fjt
 * @data 2024/11/5 18:13
 * @describe
 */
@Mapper
public interface AmmoniaCockpitMapper {


    /**
     * 查询在线设备数量
     * @param query
     * @return
     */
    Integer queryOnlineNum(@Param("query")AmmoniaCockpitQuery query);

    /**
     * 查询当前报警中的设备id
     * @param query
     * @return
     */
    List<String> queryCurrentAlarmDeviceId(@Param("query")AmmoniaCockpitQuery query);

    /**
     * 查询在指定的设备集合中，当前处于报警中的设备情况
     * @param list
     * @return
     */
    List<AlarmDeviceInfoVO> queryAlarmDevice(List<String> list);

    /**
     * 告警区域排行Top5（最近7天） 按房间统计
     * @param query
     * @return
     */
    List<AlarmRoomVO> queryAlarmNum(@Param("query")AmmoniaCockpitQuery query);


    /**
     * 告警次数趋势查询（最近7天）
     * @param query
     * @return
     */
    List<AlarmNumTrendVO> queryAlarmTrend(@Param("query")AmmoniaCockpitQuery query);

    /**
     * 告警记录详情（最近7天）
     * @param query
     * @return
     */
    List<AlarmDeviceInfoVO> queryAlarmDetail(@Param("query") AlarmDetailQuery query, Page<AlarmDeviceInfoVO> page);

}
